package com.itheima.a03mycollections;

import java.util.ArrayList;
import java.util.Collections;

public class CollectionsDemo1 {
    public static void main(String[] args) {
        //熟悉Collections，只能用来操作List集合（ArrayList，LinkedList）

        //创建集合
        ArrayList<String> list = new ArrayList<String>();
        ArrayList<String> list1 = new ArrayList<String>();
        ArrayList<Integer> list2 = new ArrayList<>();

        //addAll批量添加
        Collections.addAll(list, "A", "B", "C", "D", "E", "F", "G");
        Collections.addAll(list1, "q", "w", "e", "r", "t", "u");
        Collections.addAll(list2, 1,2,3,1212,5,6,7,8,9);
        System.out.println(list);

        //shuffle打乱
        Collections.shuffle(list);
        System.out.println(list);

        //sort排序
        Collections.sort(list);//默认排序
        System.out.println(list);

        Collections.sort(list,(o1,o2)->o2.compareTo(o1));//按指定规则排序
        System.out.println(list);

        //binarySearch，以二分查找法查找元素
        //要求元素是有序的，返回的值是对应元素在集合里面的索引
        System.out.println(Collections.binarySearch(list2, 8));

        //copy拷贝集合中的元素,将list1里面的元素拷贝到list里面去
        //如果list1长度>list长度，则代码会报错
        //这里的拷贝跟覆盖很像
        Collections.copy(list,list1);
        System.out.println(list1);
        System.out.println(list);

        //fill使用指定的元素填充集合
        Collections.fill(list,"w");
        System.out.println(list);

        //max/min根据默认的自然排序获取最大/最小值
        System.out.println(Collections.max(list2));
        System.out.println(Collections.min(list2));

        //swap交换集合中指定位置的元素
        System.out.println(list2);
        Collections.swap(list2,3,2);
        System.out.println(list2);
    }
}
